import { get } from "@/utils/http";

// 路径枚举
enum Api {
  Status = "/status",
  Blocks = "/blocks",
  ChartData = "/chartData",
  Energy = "/energy",
  DeviceOverview = "/deviceOverview",
}

// 定义充电桩,充电柜,充电站运行状态返回数据类型
export interface StatusItem {
  type: string; // 设备名称
  inUse: number; // 正在使用
  total: number; // 设备总数
  faultyDevices: number; // 故障设备
  trend: "up" | "down"; // 趋势
  trendValue: number; // 趋势值
  image: string; // 图片地址
}

// 设备状态返回数据类型
interface StatusResponse {
  code: number;
  message: string;
  data?: StatusItem[];
}

// 获取设备状态接口
function statusApi(): Promise<StatusResponse> {
  return get(Api.Status);
}

// 创建常用功能区块数据类型,并导出
export interface BlockItem {
  name: string;
  path: string;
  icon: string;
}

// 常用功能区块返回数据类型
interface BlockResponse {
  code: number;
  data?: BlockItem[];
}

// 获取 常用功能区块 接口
function getBlocks(): Promise<BlockResponse> {
  return get(Api.Blocks);
}

// 获取 echart 数据接口 - 电量统计
function energyStatisticsRoutes() {
  return get(Api.ChartData);
}

//获取 echart 数据接口 - 能源统计
function getBlocksEnergy() {
  return get(Api.Energy);
}

// 获取 echart 数据接口 - 设备总览
function getDeviceOverview() {
  return get(Api.DeviceOverview);
}

export {
  statusApi,
  getBlocks,
  energyStatisticsRoutes,
  getBlocksEnergy,
  getDeviceOverview,
};
